The present invention relates in general to storage systems, storage controllers and data compression, and more particularly, to facilitating data compression during replication between storage arrays of a storage system.
In recent years, storage area networks (SANs) have become popular. In a storage area network, the storage units (or storage devices) are not locally attached to a particular host, but rather are connected to a host or series of hosts through a switch fabric, where each host can access each storage unit. In this manner, multiple hosts may share storage units so that storage space can be more readily allocated between the applications on the host(s).
In one example, a storage area network manages a plurality of disk drives arranged in an array according to a RAID (Redundant Array of Independent Disks) configuration. One or more logical volumes are formed in a physical storage array provided by the plurality of disk drives, and these logical volumes are provided to the host system(s).
Since this type of storage system handles large volumes of data, data compression is often employed (e.g., during replication) to increase performance of data transfer rates beyond a default rate for uncompressed data itself. Certain existing storage controller implementations utilize an all-or-nothing approach to compressing data before transferring data across a link. If compression is activated, then the storage controller attempts to compress every frame of data, whether it is compressible, non-compressible or already compressed. The result can be degradation in data transfer rates due to lost performance from, for example, attempting to compress non-compressible frames of data, prior to transfer of the data across the link.